package com.liner.collection;

import javafx.print.Collation;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Objects;

public class IteratorDemo {
    public static void main(String[] args) {
        Collection<Object> c = new ArrayList<>();
       c.add("one");
       c.add("#");
       c.add("two");
       c.add("#");
       c.add("three");

        System.out.println(c);
        //获取集合c的迭代器
        /*
         * 迭代器常用方法:
         * boolean hasNext() 问 询问集合是否还有下一个元素可供迭代
         * Object next()    取 迭代器向后移动位置来指向集合的下一个元素，并将其获取
         * void remove() 删 删除next方法所获取的元素
         */

        Iterator<Object> iterator = c.iterator();
        while (iterator.hasNext()){
            String next = (String) iterator.next();
            //为了可以使用String 的方法，实现强转
            System.out.println(next);
            if("#".equals(next)){
                //c.remove(next); //迭代器遍历过程中不允许通过集合的方式增删元素
                iterator.remove();  //删除next方法所获取元素
            }
            //System.out.println(iterator.next());
        }
        System.out.println(c);

        //

        System.out.println("--------------------------------");


      /*  //迭代走完一遍后，再走迭代会报错 NoSuchElementException 没有这样的元素
        for (int i = 0; i < c.size(); i++) {
            System.out.println(iterator.next());
        }
       */



    }
}
